import { message } from 'antd';
import axios from 'axios'
import store from '../store'
import { toLoginWithForm } from './common';

const request = axios.create({
  // 应该配置baseUrl
  timeout: 100000,
})
// 请求拦截器 怎么拦截的 拦截了什么
request.interceptors.request.use((config) => {
  config.headers.token = store.getState()?.authority?.token || ''
  return config
}, (error) => Promise.reject(error))
// 相应拦截器   还有config这个东西是干嘛的
request.interceptors.response.use((res) => {
  if (res.data.code === '200') {
    // 如果不是get请求就做提醒
    if (res.config.method !== 'get') {
      if (!res.config.silent) {
        message.success(res.data.message)
      }
    }
    return res.config.allRes ? res.data : res.data.data
  }
  if (res.data.code === '10119') toLoginWithForm()
  message.error(res.data.message)
  throw new Error(res.data.message)
}, (error) => Promise.reject(error))
export default request
